// 上面这个代码处理过度动画（默认加上不用管）
document.addEventListener('DOMContentLoaded', () => {
  setTimeout(() => {
    document.body.classList.add('sidenav-pinned')
    document.body.classList.add('ready')
  }, 200)
})

// 每个页面都会导入该js 统一的设置写这里即可
// 封装一个弹出轻提示的函数
function tip (msg) {
  // 找到轻提示的div
  const toastDiv = document.querySelector('#myToast')
  // 修改提示的文字
  toastDiv.children[0].innerHTML = msg
  // 先要实例化一个轻提示对象
  const toast = new bootstrap.Toast(toastDiv, {
    delay: 2000
  })

  toast.show()
}

// 找到显示名字的span
const nameSpan = document.querySelector('.nav-link .font-weight-bold')
if (nameSpan) {
  nameSpan.innerHTML = localStorage.getItem('username')
}

// 找到退出
const logout = document.querySelector('#logout')
if (logout) {
  logout.addEventListener('click', function () {
    // 删掉本地存储
    localStorage.removeItem('keshihua96')
    localStorage.removeItem('username')
    // 以这个js文件被导入的页面为准
    location.href = './login.html'
  })
}

// 设置axios的基地址
axios.defaults.baseURL = 'http://ajax-api.itheima.net'

// 设置请求拦截器
axios.interceptors.request.use(
  function (config) {
    // 有token才携带token
    const token = localStorage.getItem('keshihua96')
    if (token) {
      // 给请求添加Authorization，值为token
      config.headers.Authorization = localStorage.getItem('keshihua96')
    }
    // 再把这个请求发出去
    return config
  },
  function (error) {
    return Promise.reject(error)
  }
)

// 设置响应拦截器
axios.interceptors.response.use(
  function (response) {
    // 做数据剥离
    return response.data
  },
  function (error) {
    if (error.response.status === 401) {
      // 代表token有问题
      // 清空有问题的token
      localStorage.removeItem('keshihua96')
      localStorage.removeItem('username')
      // 打回登录页
      location.href = './login.html'
    }
    return Promise.reject(error)
  }
)
